Skip to content

feat(ops): indexer + treasury ops bundle (#283–#286) - #358

Merged
miss-yusrah merged 1 commit into
Stellar-TrustBridge:mainfrom
fytgian:feature/283-286-indexer-ops-bundle
Aug 31, 2026
Merged

feat(ops): indexer + treasury ops bundle (#283–#286)#358
miss-yusrah merged 1 commit into
Stellar-TrustBridge:mainfrom
fytgian:feature/283-286-indexer-ops-bundle

Conversation

@fytgian

@fytgian fytgian commented Aug 31, 2026

Copy link
Copy Markdown

Bundled delivery of the four Stellar Wave indexer/ops issues assigned to @fytgian.

Changes

  • Replay-idempotent event IDs documented and tested per DASHBOARD_SYNC.md #283 — replay-idempotent event IDs. Documents a stable event ID scheme {network_id}:{contract_id}:{ledger_sequence}:{tx_hash}:{event_index} in DASHBOARD_SYNC.md / EVENT_INDEXING.md, plus the consumer dedup algorithm. Adds tests/event_replay.rs (a reference consumer proving a full re-sync is a no-op) and a language-neutral tests/testdata/event_replay_fixture.json.
  • GraphQL subgraph schema for Registered, Verified, and Removed #284 — GraphQL subgraph schema. New docs/subgraph/ with schema.graphql (RegisteredEvent, VerifiedEvent, RemovedEvent + derived Contributor), the event→entity mapping, handler sketch, example query, and local-run notes. Field names/types mirror src/events.rs; RegisteredEvent correctly has no domain, reason_code is absent, batch-remove collisions are handled via eventIndex. No payload fields invented.
  • Payout allowlist CSV generator from get_public_paginated with verified-only mode #285 — payout allowlist CSV. New scripts/payout_allowlist.{py,sh} paginating the unauthenticated get_public_paginated read (no admin key), verified-only by default, bots excluded, with pagination-completeness guarding. Columns aligned with the JSON export plus payout_address.
  • Dashboard bulk-verify adapter that calls batch_verify with pacing #286 — bulk-verify batch adapter. scripts/bulk_verify.sh now calls batch_verify in pages of MAX_WRITE_BATCH (25) with automatic per-username verify fallback for older contracts, pacing, dry-run, BatchSummary partial-success handling, and per-batch audit logging.
  • ADMIN_RUNBOOK.md documents both scripts; .gitignore ignores __pycache__.

Validation

  • bash -n on both shell scripts; python3 -m py_compile on the Python modules — pass.
  • Rust toolchain is not available in this environment, so cargo fmt/clippy/test were not run locally; tests/event_replay.rs is std-only and #[rustfmt::skip] is applied to the fixture table. CI covers fmt/clippy/test.

Closes: #283
Closes: #284
Closes: #285
Closes: #286

- Stellar-TrustBridge#283: document a stable, replay-idempotent event ID scheme
  (network:contract:ledger:tx:index) in DASHBOARD_SYNC.md / EVENT_INDEXING.md,
  with a reference consumer test (tests/event_replay.rs, `cargo test event`)
  and a language-neutral replay fixture.
- Stellar-TrustBridge#284: add docs/subgraph/ — a Graph-Protocol schema.graphql for
  Registered/Verified/Removed plus a derived Contributor aggregate, the
  event -> entity mapping, a handler sketch, an example query, and local-run
  notes. Field names mirror src/events.rs; no payload fields invented.
- Stellar-TrustBridge#285: add scripts/payout_allowlist.{py,sh} — verified-only payout CSV
  generated from the unauthenticated get_public_paginated read, bots and
  unverified rows excluded by default, with pagination-completeness checks.
- Stellar-TrustBridge#286: rework scripts/bulk_verify.sh to call batch_verify in pages of
  MAX_WRITE_BATCH (25) with automatic per-username fallback, pacing, dry-run,
  partial-success (BatchSummary) handling, and per-batch audit logging.
- document the two scripts in ADMIN_RUNBOOK.md; ignore __pycache__.

Closes: Stellar-TrustBridge#283
Closes: Stellar-TrustBridge#284
Closes: Stellar-TrustBridge#285
Closes: Stellar-TrustBridge#286
@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@fytgian Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@miss-yusrah
miss-yusrah merged commit 87b3e79 into Stellar-TrustBridge:main Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants